import { Component, OnInit,Input,OnChanges,SimpleChanges,DoCheck } from '@angular/core';

@Component({
  selector: 'app-child',
  templateUrl: './child.component.html',
  styleUrls: ['./child.component.css']
})
export class ChildComponent implements OnInit,OnChanges{

  @Input()
  greeting:string;
  @Input()
  user:{name:string};
  message:string = 'hello 你好';

  //变量用来记录之前版本的user的name属性
  oldUserName:string = 'tom';
  //变量用来记录DoCheck事件被触发的次数
  doCheckNumber:number = 0;
  //变量标识docheck是否变化的bool标识位,初始设置为false
  boolDoCheck:boolean = false;
  constructor() {}

  ngOnInit() {
  }

  ngOnChanges(changes: SimpleChanges) {
    console.log(JSON.stringify(changes,null,2));
  }

  // ngDoCheck() {
  //   if(this.user.name != this.oldUserName){
  //       this.boolDoCheck = true;
  //       // this.doCheckNumber = this.doCheckNumber + 1;
  //       //输出user的name值的变化过程
  //       console.log('user的name从'+this.oldUserName+'变化为'+this.user.name);
  //       this.oldUserName = this.user.name;
  //   }

  //   if(this.boolDoCheck){//名字发生了变化的情况下重新计数
  //     this.doCheckNumber = 0;
  //   }else{//在没有发生变化的情况下调用打印docheck的调用次数
  //     this.doCheckNumber = this.doCheckNumber + 1;
  //     console.log('name没有被修改的情况下doCheck函数被调用的次数：'+this.doCheckNumber);
  //   }
  // }

  //子组件中定义的方法
  sayHello(){
    console.log('hello')
  }

}
